from .getsnmp import snmpget
from .walksnmp import snmpwalk,_snmpwalk
from .setsnmp import snmpset
from pysnmp.hlapi.v3arch.asyncio import Integer,Unsigned32
import asyncio

wr_type = "master"

class impCtrlMENA():
    def walk_impCtrlMENA(self,ip:str):
        return snmpwalk(ip,wr_type,"impCtrlMENA")

    def set_impCtrlMC0Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC0Ena",Integer(value))
    def get_impCtrlMC0Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC0Ena")
    def set_impCtrlMC1Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC1Ena",Integer(value))
    def get_impCtrlMC1Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC1Ena")
    def set_impCtrlMC2Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC2Ena",Integer(value))
    def get_impCtrlMC2Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC2Ena")
    def set_impCtrlMC3Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC3Ena",Integer(value))
    def get_impCtrlMC3Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC3Ena")
    def set_impCtrlMC4Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC4Ena",Integer(value))
    def get_impCtrlMC4Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC4Ena")
    def set_impCtrlMC5Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC5Ena",Integer(value))
    def get_impCtrlMC5Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC5Ena")
    def set_impCtrlMC6Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC6Ena",Integer(value))
    def get_impCtrlMC6Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC6Ena")
    def set_impCtrlMC7Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC7Ena",Integer(value))
    def get_impCtrlMC7Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC7Ena")
    def set_impCtrlMC8Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC8Ena",Integer(value))
    def get_impCtrlMC8Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC8Ena")
    def set_impCtrlMC9Ena(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlMC9Ena",Integer(value))
    def get_impCtrlMC9Ena(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlMC9Ena")
    
    def set_impCtrlUtcCodingEna(ip:str,value):
        return snmpset(ip,wr_type,"impCtrlUtcCodingEna",Integer(value))
    def get_impCtrlUtcCodingEna(ip:str):
        return snmpget(ip,wr_type,"impCtrlUtcCodingEna")
    
    def set_impCtrlInterlockEna(ip:str,value):
        return snmpset(ip,wr_type,"impCtrlInterlockEna",Integer(value))
    def get_impCtrlInterlockEna(ip:str):
        return snmpget(ip,wr_type,"impCtrlInterlockEna")
    
    def set_impCtrlHeartbeatEna(ip:str,value):
        return snmpset(ip,wr_type,"impCtrlHeartbeatEna",Integer(value))
    def get_impCtrlHeartbeatEna(ip:str):
        return snmpget(ip,wr_type,"impCtrlHeartbeatEna")

class impBPSConfig():
    def walk_impBPSConfig(self,ip:str):
        return snmpwalk(ip,wr_type,"impBPSConfig")
    def get_impCtrlTrigger(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlTrigger")
    
    def set_impCtrlWaitS(self,ip:str,value):
        return snmpset(ip,wr_type,"impCtrlWaitS",Unsigned32(value))
    def get_impCtrlWaitS(self,ip:str):
        return snmpget(ip,wr_type,"impCtrlWaitS")
    
class impDelayConfig():
    def walk_impDelayConfig(self,ip:str):
        return snmpwalk(ip,wr_type,"impDelayConfig")
    
    def set_FineDelayAux0(self,ip:str,value):
        return snmpset(ip,wr_type,"FineDelayAux0",Unsigned32(value))
    def get_FineDelayAux0(self,ip:str):
        return snmpget(ip,wr_type,"FineDelayAux0")
    
    def set_FineDelayAux1(self,ip:str,value):
        return snmpset(ip,wr_type,"FineDelayAux1",Unsigned32(value))
    def get_FineDelayAux1(self,ip:str):
        return snmpget(ip,wr_type,"FineDelayAux1")
    
    def set_CaliFineDelayMC0(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC0",Unsigned32(value))
    def get_CaliFineDelayMC0(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC0")
    def set_CaliCoarseDelayMC0(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC0",Unsigned32(value))
    def get_CaliCoarseDelayMC0(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC0")
    
    def set_CaliFineDelayMC1(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC1",Unsigned32(value))
    def get_CaliFineDelayMC1(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC1")
    def set_CaliCoarseDelayMC1(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC1",Unsigned32(value))
    def get_CaliCoarseDelayMC1(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC1")
    
    def set_CaliFineDelayMC2(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC2",Unsigned32(value))
    def get_CaliFineDelayMC2(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC2")
    def set_CaliCoarseDelayMC2(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC2",Unsigned32(value))
    def get_CaliCoarseDelayMC2(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC2")
    
    def set_CaliFineDelayMC3(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC3",Unsigned32(value))
    def get_CaliFineDelayMC3(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC3")
    def set_CaliCoarseDelayMC3(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC3",Unsigned32(value))
    def get_CaliCoarseDelayMC3(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC3")
    
    def set_CaliFineDelayMC4(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC4",Unsigned32(value))
    def get_CaliFineDelayMC4(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC4")
    def set_CaliCoarseDelayMC4(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC4",Unsigned32(value))
    def get_CaliCoarseDelayMC4(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC4")
    
    def set_CaliFineDelayMC5(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC5",Unsigned32(value))
    def get_CaliFineDelayMC5(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC5")
    def set_CaliCoarseDelayMC5(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC5",Unsigned32(value))
    def get_CaliCoarseDelayMC5(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC5")
    
    def set_CaliFineDelayMC6(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC6",Unsigned32(value))
    def get_CaliFineDelayMC6(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC6")
    def set_CaliCoarseDelayMC6(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC6",Unsigned32(value))
    def get_CaliCoarseDelayMC6(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC6")
    
    def set_CaliFineDelayMC7(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC7",Unsigned32(value))
    def get_CaliFineDelayMC7(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC7")
    def set_CaliCoarseDelayMC7(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC7",Unsigned32(value))
    def get_CaliCoarseDelayMC7(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC7")
    
    def set_CaliFineDelayMC8(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC8",Unsigned32(value))
    def get_CaliFineDelayMC8(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC8")
    def set_CaliCoarseDelayMC8(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC8",Unsigned32(value))
    def get_CaliCoarseDelayMC8(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC8")
    
    def set_CaliFineDelayMC9(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliFineDelayMC9",Unsigned32(value))
    def get_CaliFineDelayMC9(self,ip:str):
        return snmpget(ip,wr_type,"CaliFineDelayMC9")
    def set_CaliCoarseDelayMC9(self,ip:str,value):
        return snmpset(ip,wr_type,"CaliCoarseDelayMC9",Unsigned32(value))
    def get_CaliCoarseDelayMC9(self,ip:str):
        return snmpget(ip,wr_type,"CaliCoarseDelayMC9")

class impPolarityConfig():
    def walk_impPolarityConfig(self,ip:str):
        return snmpwalk(ip,wr_type,"impPolarityConfig")
    
    def set_PolarityMC0(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC0",Integer(value))
    def get_PolarityMC0(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC0")
    
    def set_PolarityMC1(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC1",Integer(value))
    def get_PolarityMC1(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC1")
    
    def set_PolarityMC2(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC2",Integer(value))
    def get_PolarityMC2(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC2")
    
    def set_PolarityMC3(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC3",Integer(value))
    def get_PolarityMC3(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC3")
    
    def set_PolarityMC4(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC4",Integer(value))
    def get_PolarityMC4(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC4")
    
    def set_PolarityMC5(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC5",Integer(value))
    def get_PolarityMC5(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC5")
    
    def set_PolarityMC6(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC6",Integer(value))
    def get_PolarityMC6(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC6")
    
    def set_PolarityMC7(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC7",Integer(value))
    def get_PolarityMC7(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC7")
    
    def set_PolarityMC8(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC8",Integer(value))
    def get_PolarityMC8(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC8")
    
    def set_PolarityMC9(self,ip:str,value):
        return snmpset(ip,wr_type,"PolarityMC9",Integer(value))
    def get_PolarityMC9(self,ip:str):
        return snmpget(ip,wr_type,"PolarityMC9")

class impWavePatternConfig():
    def walk_impWavePatternConfig(self,ip:str):
        return snmpwalk(ip,wr_type,"impWavePatternConfig")
    
    def set_WavePatternIndexMC0(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC0",Unsigned32(value))
    def get_WavePatternIndexMC0(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC0")
    
    def set_WavePatternIndexMC1(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC1",Unsigned32(value))
    def get_WavePatternIndexMC1(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC1")
    
    def set_WavePatternIndexMC2(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC2",Unsigned32(value))
    def get_WavePatternIndexMC2(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC2")
    
    def set_WavePatternIndexMC3(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC3",Unsigned32(value))
    def get_WavePatternIndexMC3(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC3")
    
    def set_WavePatternIndexMC4(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC4",Unsigned32(value))
    def get_WavePatternIndexMC4(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC4")
    
    def set_WavePatternIndexMC5(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC5",Unsigned32(value))
    def get_WavePatternIndexMC5(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC5")
    
    def set_WavePatternIndexMC6(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC6",Unsigned32(value))
    def get_WavePatternIndexMC6(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC6")
    
    def set_WavePatternIndexMC7(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC7",Unsigned32(value))
    def get_WavePatternIndexMC7(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC7")
    
    def set_WavePatternIndexMC8(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC8",Unsigned32(value))
    def get_WavePatternIndexMC8(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC8")
    
    def set_WavePatternIndexMC9(self,ip:str,value):
        return snmpset(ip,wr_type,"WavePatternIndexMC9",Unsigned32(value))
    def get_WavePatternIndexMC9(self,ip:str):
        return snmpget(ip,wr_type,"WavePatternIndexMC9")

class impCtrlApply():
    def set_impCtrlApply(self,ip,value):
        return snmpset(ip,wr_type,"impCtrlApply",Integer(value))

class impWavePatternTable():
    def walk_impWavePatternTable0(self,ip:str):
            
        return asyncio.run(_snmpwalk(ip,".1.3.6.1.4.1.96.103.1.2"))

    def walk_impWavePatternTable1(self,ip:str):
            
        return asyncio.run(_snmpwalk(ip,".1.3.6.1.4.1.96.103.1.3"))

    def walk_impWavePatternTable2(self,ip:str):
            
        return asyncio.run(_snmpwalk(ip,".1.3.6.1.4.1.96.103.1.4"))

    def walk_impWavePatternTable3(self,ip:str):
            
        return asyncio.run(_snmpwalk(ip,".1.3.6.1.4.1.96.103.1.5"))

class impWavePatternSetGroup():
    def walk_impWavePatternSetGroup(self,ip:str):
        return asyncio.run(_snmpwalk(ip,".1.3.6.1.4.1.96.103.1.6"))
    
    def set_impWavePatternSet(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternSet",Integer(value))
    def get_impWavePatternSet(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternSet")
    
    def set_impWavePatternMC(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternMC",Integer(value))
    def get_impWavePatternMC(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternMC")
    
    def set_impWavePatternIndex(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternIndex",Unsigned32(value))
    def get_impWavePatternIndex(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternIndex")
    
    def set_impWavePatternDelay(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternDelay",Unsigned32(value))
    def get_impWavePatternDelay(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternDelay")
    
    def set_impWavePatternWidth(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternWidth",Unsigned32(value))
    def get_impWavePatternWidth(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternWidth")
    
    def set_impWavePatternIdle4ns(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternIdle4ns",Unsigned32(value))
    def get_impWavePatternIdle4ns(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternIdle4ns")
    
    def set_impWavePatternIdle100ms(self,ip:str,value):
        return snmpset(ip,wr_type,"impWavePatternIdle100ms",Unsigned32(value))
    def get_impWavePatternIdle100ms(self,ip:str):
        return snmpget(ip,wr_type,"impWavePatternIdle100ms")

class impInterlockReadGroup():
    def walk_impInterlockReadGroup(self,ip:str):
        return snmpwalk(ip,wr_type,"impInterlockReadGroup")
    
    def get_impInterlock7100(self,ip:str):
        return snmpget(ip,wr_type,"impInterlock7100")
    
    def get_impInterlock19eg(self,ip:str):
        return snmpget(ip,wr_type,"impInterlock19eg")
    
    def get_impOvertime(self,ip:str):
        return snmpget(ip,wr_type,"impOvertime")
    
    def get_impPhoenix(self,ip:str):
        return snmpget(ip,wr_type,"impPhoenix")